Presenting dynamic location of a user

ABSTRACT

Providing location information to a supervisory user includes providing a parental control, using a computer automatically to determine a location of a subordinate user, and storing location information indicative of the location of the subordinate user in a database. A request of the supervisory user to locate the subordinate user is received and a user interface informs the supervisory user of the location of the subordinate user based on the stored location information. At least one of the storing and/or the informing are based on the parental control.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.13/361,141 filed on Jan. 30, 2012, which is a continuation of U.S.application Ser. No. 11/574,831 filed on Feb. 13, 2009, which is a 371National Stage Application of International Application Serial No.PCT/US2004/029291 filed on Sep. 8, 2004, all of which are herebyincorporated by reference in their entirety.

TECHNICAL FIELD

This invention relates to location of a subordinate user.

BACKGROUND

Communication technologies, such as mobile phones and the internet, haveproliferated. As a result, children have ever greater freedom to movewithin the information world, and to do so from a variety of physicallocations. Not all locations, however, are age appropriate, and themobility and pervasiveness of communication technology may renderimpractical “eyes-on” supervision of the locations visited by a child orother user. “Eyes-on” supervision, moreover, generally reduces a child'ssense of autonomy, and may require inordinate parental involvement.

SUMMARY

In one general aspect, providing location information to a supervisoryuser includes providing a parental control, using a computerautomatically to determine a location of a subordinate user, and storinglocation information indicative of the location of the subordinate userin a database. A request of the supervisory user to locate thesubordinate user is received and a user interface informs thesupervisory user of the location of the subordinate user based on thestored location information. At least one of the storing and theinforming are based on the parental control.

Implementations may include one or more of the following features. Forexample, providing the location information may include using thecomputer to determine a changed location of the subordinate user, usingthe database to update the stored location information based on thechanged location, and using the user interface to inform the supervisoryuser of the changed location based on the updated stored locationinformation. Informing the supervisory user of the changed location mayinclude refreshing the information communicated by the user interfacebased on a predetermined interval.

Storing the location information may include storing an indication ofthe present location of the subordinate user. Location informationindicative of past locations of the subordinate user also may be storedand the supervisory user may be informed of a past location of thesubordinate user. The database may store the location information inrelation to the subordinate user.

The supervisory user and the subordinate user may be associated througha familial relationship, and may hold related online accounts.

The parental control may include a white list indicative of an onlinelocation approved for visitation by the subordinate user and/or a blacklist indicative of an online location disapproved for visitation by thesubordinate user. Providing location information may include informingthe supervisory user of locations visited by the subordinate user thatare included on the black list but not of locations that are included onthe white list.

The parental control may indicate a range of location information ofwhich the supervisory user desires to be informed. For example, theparental control may indicate that the supervisory user is to beinformed of a predetermined number of the most recent locations visitedby the subordinate user, of the locations most frequently visited by thesubordinate user, and/or of the locations visited by the subordinateuser within a defined period of time. The parental control also mayinclude a textual analysis rule.

Determining the location of the subordinate user may include determiningan online location and location information associated with the onlinelocation. The location information may include, for example, a universalresource locator (URL), an internet protocol (IP) address, and/or anidentifier of an internet domain associated with the online location.The location information may include a television channel and/or anidentification of a television program. The supervisory user may beenabled dynamically to access the online location of the subordinateuser based on the location information.

Determining the location of the subordinate user also may includedetermining a physical location of the subordinate user, for example,based on information communicated by a global positioning system (GPS).Location information describing the physical location may include aphysical address, a longitude and/or a latitude, and/or a name of aphysical location.

The request of the supervisory user for information may include anidentification (e.g., a screen name) of the subordinate user from acontact list of the supervisory user.

The supervisory user also may be enabled to communicate with thesubordinate user in relation to a location visited by the subordinateuser. The communication between the supervisory user and the subordinatemay be enabled using an instant message, an email, a voicecommunication, and/or any other suitable electronic communication.

These general and specific aspects may be implemented using a method, asystem, or a computer program, or any combination of systems, methods,and computer programs.

Other features will be apparent from the description, the drawings, andthe claims.

DESCRIPTION OF DRAWINGS

FIGS. 1-3 illustrate graphical user interfaces (GUIs) that may be usedby a supervisory user to dynamically locate a subordinate user.

FIG. 4 is a schematic diagram of a system for dynamically locating asubordinate user.

FIG. 5 is a flow diagram of a process implementable by the system ofFIG. 5.

FIG. 6 is a schematic diagram of a user location system.

FIGS. 7A-7C are flow diagrams illustrating exemplary processesimplementable by the user location system of FIG. 6.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

An online service provider may enable an online user to determinedynamically and in real time the location of another user, such as, forexample, a child or other subordinate user. For instance, the user mayperceive a web page or URL presently viewed by the other user, aphysical location of the other user, and/or a log of the past onlineactivity of the subordinate user.

FIG. 1 illustrates a graphical user interface 100 (buddy list interface)that a supervisory user (e.g., a parent or guardian) may use to locateanother user (e.g., a subordinate user such as a child). The buddy listinterface 100 lists contacts 105 (e.g., buddies) of the supervisoryuser. The listed contacts may be identified to the supervisory userusing textual and or graphical identifiers, such as, for example, a name(e.g., a screen name) and/or an icon. A subordinate user 107 may beidentified from among the other contacts based on an additionalidentifier. For example, buddy list interface 100 uses a star icon 109to the right of Hollingworth J T to identify Hollingworth J T as asubordinate user. In addition or as an alternative, other forms ofidentification may be used. For example, the subordinate user may belisted in a separate group (e.g., a subordinate user group or a familygroup), and/or the identifier of the subordinate user may be highlightedvisually.

The supervisory user may use a button 110 (the “Show” button) to selectbetween various formats for listing the subordinate user 107 and othercontacts of the supervisory user. The supervisory user may use a button115 (the “Setup” button) to control the location information that isgathered with respect to the subordinate user 107 and/or how thatinformation is presented.

Referring to FIG. 2, the buddy list interface 100 enables thesupervisory user to obtain information related to the subordinate user107, such as, for example, location information. For instance, thesupervisory user may pause or “float” a cursor 205 over the name of thesubordinate user 107 to obtain a snapshot 210 of the subordinate user'slocation and online activity. As illustrated, the snapshot 210 indicatesthat Hollingworth J T presently is online and is visiting “Top TenGames” at the Games Channel. The snapshot 210 also indicates thatHollingworth J T is at home and has been online for 1 hour and 54minutes. More complete location information may be accessed by opening(e.g., by double clicking) the name of the subordinate user 107 or byusing a button 215 (the “Buddy Info” button) after selecting (e.g., bysingle clicking) the name of the subordinate user 107.

In addition, the supervisory user may communicate with the subordinateuser 107 or with another contact using a button 220 (the “Send IM”button) to initiate an instant message or a button 225 (the “Buddy Chat”button) to initiate a chat session. The supervisory user also may use abutton 230 (the “Address Book” button) to add or modify contactinformation for the subordinate user 107 or for other contacts.

FIG. 3 illustrates a buddy info interface 300 that may be invoked fromthe buddy list interface 100 of FIG. 1 or based on an alert trigger, forexample, of a parental control. The buddy info interface 300 shows orprovides access to more complete location information related to thesubordinate user 107. The buddy info interface 300 also may be invokedto obtain information related to the other listed contacts 105; however,the information for a particular contact 105 may be less detailed and/orsubject to consent of the selected contact 105. Referring to FIG. 1, thebuddy info interface 300 may be invoked, for example, by opening thename of the subordinate user 107 or by using the “Buddy Info” button 215after selecting the name of the subordinate user 107.

Referring again to FIG. 3, the buddy info interface 300 includes an IDbar 305 that identifies the subordinate user 107 for whom information isprovided. The buddy info interface 300 also includes an informationpanel 310 that indicates the current online location of the subordinateuser 107. For example, the information panel 310 indicates thatHollingworth J T presently is visiting the Top Ten Games page at theGaming Channel and has been online for 1 hour and 54 minutes. Thelocation information presented in the information panel 310 may beupdated at predetermined intervals or dynamically as Hollingworth J Tmoves to a different location. The supervisory user may use a button 315(the “Join Me” button) to access the present online location of thesubordinate user 107, such as, for example, to visit the web page, URL,or chat room presently accessed by the subordinate user 107.

Additionally, or in the alternative, the information panel 310 mayindicate a physical location of the subordinate user 107. The physicallocation may be determined, for example, based on a known physicallocation of a non-mobile device (e.g., a workstation or a desk-toppersonal computer) or based on location information provided by a GPS(global positioning system) associated with a mobile device (e.g., anotebook computer, a personal digital assistant, or a mobile telephone)of the subordinate user 107.

The supervisory user may use a button 320 (the “Show Full Log” button)to access a location log (e.g., the location log 330 of the supervisoryuser 107, Hollingworth J T) of present and past location informationrelated to the subordinate user 107. The location log 330 may displaylocation information according to a predetermined window. The window maydefine a predetermined period of interest, such as, for example, thepast twenty-four hours, the current day (e.g., Mar. 11, 2004, as shown),the current week, or any other desired period of time. Other types ofwindows also may be used (e.g., to define a number of most recently orfrequently visited locations).

As shown, the location log 330 indicates present location information335 related to Hollingworth J T (i.e., that Hollingworth J T presentlyis online visiting the Gaming Channel from home). The location log 330also indicates location information 340 from prior in the day.Specifically, the location log 330 shows that Hollingworth J T visitedthe Math site at the Education channel and also CoolMath.com fromschool; that Hollingworth J T visited the site Casino.com from anunknown location; that, while at school, Hollingworth J T was blockedfrom accessing (e.g., based on an over-inclusive black list) a site onAsexual Plants at the Botany Channel; and that Hollingworth J T visitedthe Message Center from home.

The supervisory user may use the information of the location log 330 tojudge, for example, the appropriateness of locations visited by thesubordinate user 107, and may use the control panel 350 to respondaccordingly. For example, the supervisory user may use the location log330 to note that Hollingworth J T visited the site Casino.com and maydetermine that Casino.com is inappropriate for the subordinate user 107to visit. Consequently, the supervisory user may use a button 355 (the“Send IM” button) or a button 360 (the “Send Mail” button) tocommunicate with the subordinate user regarding the location visited.Specifically, the supervisory user may communicate with Hollingworth J Tregarding the visit to Casino.com; and may wish to know why HollingworthJ T was not at school then, and from where access was made. Thesupervisory user also may use a button 365 (the “Block Site” button) toblock Casino.com from future access by Hollingworth J T. In thealternative, the supervisory user may use a button 370 (the “Clear Site”button) to clear a site (e.g., the Asexual Plate site of the BotanyChannel) that the supervisory user deems unobjectionable but for whichthe subordinate user 107 was blocked access.

The supervisory user also may use a button 375 (the “Parental Controls”button) to provide or modify a parental control used to superviselocations visited by the subordinate user 107. The parental control mayinclude age-appropriate default settings that apply to different ageclasses of users, such as, for example, subordinate users classified as“Kids,” “Young Teens,” or “Mature Teens.” The parental control mayinclude one or more alert triggers that may cause the supervisory userto be quickly notified if the subordinate user visits a particularlocation or type of location.

The parental control also may include notification information tocontrol delivery of the notification, for example, based on locationinformation of the supervisory user. The location information, whetherfor a physical or an online location, may be determined similarly to thelocation of the subordinate user. In any event, the notificationinformation and/or the location information may be used to select amongseveral delivery mechanisms potentially available to the supervisoryuser. Delivery of the notification based on the location informationenhances the likelihood that the notification is received by thesupervisory user without significant delay.

In addition or in the alternative to the age-appropriate defaultsettings, the parental control may include a white list definingapproved locations (e.g., online educational sites, school, a friend'shome) and/or a black list defining a domain of unacceptable locations(e.g., online gambling sites, a local pool hall, the home of adisapproved friend) for which visitation is disapproved. The white listand/or black list may be based on input of a rating authority or by acommunity of raters. The alert triggers may be used in conjunction withthe white list and/or the black list. For example, an alert may indicatethe arrival of the subordinate user to a white listed location (e.g.,school or a friend's home). On the other hand, an alert also may betriggered when the subordinate user visits a black listed location.Although the white list or the black list may be provided initially as adefault, the supervisory user may be enabled to modify or replace eitherthe white list or the black list to better fit the supervisory user'spreferences.

The parental control may include a time component used to supervise thetimes during which online access is permitted. For example, thesupervisory user may restrict online access between the hours of 5:30 pmand 7:30 am during the school week, but may allow online access withless restriction in the afternoon after school, on the weekends whilethe subordinate user 107 is not at school, and during school withrespect to school related activities. The time component of the parentalcontrol also may control the amount of time during a predeterminedperiod (e.g., the present day, the present week, the precedingtwenty-four hours) that the subordinate user 107 may access onlinesites. The alert triggers also may be used to generate a notificationwhen the subordinate user disregards the time based parental controls.

The parental control may be used to control logging or reporting of thelocation of the subordinate user 107. The parental control may designatethat all locations or only some locations visited by the subordinateuser 107 are to be logged. The parental control may indicate that accessto locations may be logged based, for example, on an approval status(e.g., based on a white list or a black list). Locations also may belogged based on a time constraint, such as, for example, whether thelocation is accessed at a non-approved time or is accessed for greaterthan an approved time. The parental control may indicate that loggedlocations are to be provided with an access time stamp and/or with anindication of the duration of access.

FIG. 4 shows a generalized system 400 used to identify dynamically to asupervisory user 405 locations visited by a subordinate user 407. Thesupervisory user 405 and the subordinate user 407 may be related througha familial relationship (e.g., a parent-child relationship) and may holdrelated online accounts. In any event, the system 400 identifies thelocations visited by the subordinate user 407 using a dynamic userlocation system 420. The dynamic user location system 420 includes adetermination service 425, an information management service 430, and aninforming service 435.

The determination service 425 may be configured to determine thelocation 410 (e.g., an online location and/or a physical location) ofthe subordinate user 407, and to communicate information indicative ofthe location 410. The location 410 may include an online location of thesubordinate user 407, such as, for example, a location of thesubordinate user 407 at a particular URL (uniform resource locator),chat-room, message board, or newsgroup. The location 410 also mayinclude a physical location determined, for example, from GPSinformation of a mobile device, identification information (e.g., aninternet protocol address, a phone number) of a fixed device having aknown physical location, or location information maintained within afixed or mobile device. The determination service 425 may employ one ormore protocols to transfer information internally or to communicate withother components of the dynamic user location system 420.

The information management service 430 maintains information (e.g.,present location, log information of past locations, time stampinformation, parental control information, identification informationand/or contact information) related to the subordinate user 407. Theinformation management service 430 may modify or recharacterize locationinformation obtained from the determination service 425 (e.g., using amap of online or physical location to determine generalized locationinformation), for example, to enable presentation of the locationinformation in a more useful form. In any event, based on the parentalcontrol information and/or system default information, the informationmanagement service 430 may store some or all of the location informationand may manage that information in relation to an identifier of thesubordinate user 407. Similarly, the information management service 430may remove from storage some or all of the location information asindicated by the parental controls and/or system default information.Storing only the information required may improve scalability of thesystem 400. For example, based on a parental control, the informationmanagement service 430 may retain only location information thatsatisfies a predetermined window (e.g., that falls within apredetermined time period such as a rolling twenty-four hour period orthe present week).

The informing service 435 is configured to interface between thesupervisory user 405 and the information management service 430. Forexample, the informing service 435 may be configured to receive arequest from the supervisory user 405 for location information relatedto the subordinate user 407. Based on the request, the informing service435 is configured to query the information management service 430 forlocation information related to the subordinate user 407 and tocommunicate that information to the supervisory user 405, using, forexample, the online interface 415. The online interface 415 maycorrespond generally to the GUIs described above with respect to FIGS.1-3. The informing service 435 also may be configured as a conduit bywhich the supervisory user 405 may access and configure parentalcontrols, and/or other control information or parameters maintained, forexample, by the information management service 430.

The informing service 435 may enable the supervisory user 405 tocommunicate with the subordinate user 407, for example, in relation tothe location information.

The informing service 435 also may enable the supervisory user 405 tomodify the presentation of the location information related to thesubordinate user 407 (e.g., to select among different views or detaillevels of the location information as shown in FIGS. 1-3), to obtainrelated follow-on information, and/or to select or filter informationbased on various criteria (e.g., based on a selected time period or aspecified parental control).

In determining or providing location information, the dynamic userlocation system 420 may control (or allow the supervisory user 405 tocontrol) the resolution at which the location of the subordinate user407 is determined or reported. The resolution control function may beperformed individually or in combination by one or more of thedetermination service 425, the information management service 430 and/orthe informing service 435.

For example, the determination service 425 may determine a specificlocation (e.g., a specific web page viewed or an exact longitude andlatitude) of the subordinate user 407, but may report a more generalizedlocation (e.g., the web site that includes the viewed page or the schoolthat includes the exact longitude and latitude) that may be more usefulto the supervisory user 405. Similarly, the information managementservice 430 may receive exact location information from thedetermination service 425, but may maintain generalized locationinformation based on stored or accessed location mapping information.This generalized information may be maintained in addition to or as analternative to the exact location information. In like manner, theinforming service 435 may inform the user 405 of a generalized locationthat the informing service 435 has determined based on exact locationinformation and location mapping information obtained from theinformation management service 430. Other functional allocations arepossible.

The elements of system 400 may include additional mechanisms fordelivering or processing data. The mechanisms may include, for example,any applications, protocols, devices, or networks used to facilitatecommunication or processing of electronic data. The system elements alsomay include or be included in a general-purpose or a special-purposecomputer, a database, a local area network (LAN), and/or a wide areanetwork (WAN). The response to and execution of instructions received bythe system elements may be controlled, for example, by a program, apiece of code, an instruction, a device, a computer system, or acombination thereof, for independently or collectively instructing thesystem elements to interact and operate as described.

FIG. 5 illustrates a flow diagram of a process 500 implementable bysystem 400 of FIG. 4 to identify dynamically to the supervisory user 405a location of the subordinate user 407. The determination service 425determines a location (e.g., an online location or a physical location)of the subordinate user 407 (step 505). The information managementservice 430 stores information indicative of the location of thesubordinate user 407 using, for example, a database record associatedwith the subordinate user 407 (step 510). The informing service 435receives a request from the supervisory user 405 to locate thesubordinate user 407 (step 515). The informing service 435 then informsthe supervisory user 405 of the location of the subordinate user 407based on the stored location information. The informing service 435 mayinform the supervisory user 405 using, for example, a pop-up window, alist, a graph, or any other appropriate mechanism. The informing service435 may inform the supervisory user 405 of the location of thesubordinate user 407 in a fashion suitable to enable the supervisoryuser 405 to communicate (e.g., in real time) with the subordinate user407.

Referring to FIG. 6, a generalized system 600 identifies dynamically toa supervisory user 605 a location of a subordinate user 607. To thisend, the system 600 uses a dynamic user location system 620 having adetermination service 630, an information management service 630, and aninterface service 635. Components of the location system 600 aredescribed in greater detail below.

The subordinate user 607 may use a communication device 608 at aphysical location 609 to visit an online location 610 included within anetwork 612. The communication device 608 may be configured to providethe subordinate user 607 with online access to the network 612. Moregenerally, the communication device 608 may include any device, system,and/or piece of code that enables the subordinate user 607 tocommunicate with another device or service. For example, thecommunication device 608 may include a device such as a notebookcomputer, a telephone, a pen-enabled computer, a personal digitalassistant (PDA), a mobile telephone, and/or a desktop computer.Components of the communication device 608 may include a globalpositioning system (GPS), a Web browser, an email client, asynchronization client (e.g., a calendar synchronization client or atask list synchronization client), an instant messaging (IM) client, abusiness productivity application (e.g., a word processing orspreadsheet program), and/or an operating system or operating systemkernel residing on a device. The communication device 608 may bearranged to operate within or in concert with one or more other systems,such as, for example, one or more LANs and/or one or more WANs.

The network 612 (e.g., the internet) typically allows direct or indirectcommunication between the communication device 608 and the dynamic userlocation system 620, irrespective of physical or logical separation. Thenetwork 612 also may allow direct or indirect communication between thesupervisory user 605 and the dynamic user location system 620, andbetween the supervisory user 605 and the subordinate user 607. Thenetwork 612 may access or include various sources of information, suchas, for example, third party information or services, email, adiscussion group, a chat room, a news service, a broker service, abanking service, a shopping service, a weather service, the World WideWeb, or other internet information sources.

The network 612 may employ one or more protocols (i.e., standards,formats, conventions, rules, and structures) to transfer informationinternally or deliver information to one or more users. The protocolsmay include, for example, the internet protocol (IP), the transmissioncontrol protocol (TCP), the hypertext transfer protocol (HTTP), the filetransfer protocol (FTP), the user datagram protocol (UDP), the layer twotunneling protocol (L2TP) and/or the simple mail transfer protocol(SMTP). The network 612 may include, for example, the internet, theWorld Wide Web, a WAN, a LAN, analog or digital wired and wirelesstelephone networks (e.g., PSTN, ISDN, or xDSL), radio, television,cable, satellite, and/or any other delivery mechanism for carrying data.The network 612 may be secured or unsecured, public or private.

The dynamic user location system 620 may enable the supervisory user 605to interact online with the subordinate user 607, and to do so, forexample, by using instant messaging or email. The dynamic user locationsystem 620 also may enable the supervisory user 605 to interact with thesubordinate user 607 using a voice communication provided, for example,using a wireless mobile device. The dynamic user location system 620allows the supervisory user 605 to view present and past locations ofthe subordinate user 607 so that the supervisory user 605 may determinethe desirability of or need for communicating with the subordinate user607.

In one implementation, the dynamic user location system 620 works toidentify a television program viewed by the subordinate user 607. Thedynamic user location system 620 may enable the supervisory user 605 tojoin the subordinate user 607 in viewing the television program and/orto interact during the television program with the subordinate user 607,using, for example, instant messaging and/or any other appropriate formof electronic messaging. The ability to interact dynamically and in realtime with the subordinate user 607 (e.g., a child) may significantlyenhance the real and perceived value of television programming by aidingparents, perhaps while away from their children, to participate in ormonitor their children's viewing experience.

The dynamic user location system 620 includes a determination service625 to determine dynamically the locations (e.g., online and/orphysical) of the subordinate user 607. To make this determination withrespect to online location 610, the determination service 625 maymonitor dynamically the online activities of the subordinate user 607,such as, for example, the opening of a Web page of the network 612,focus upon an opened web page (e.g., by clicking on an open Web page ora portion thereof), and/or entry into a chat room or a news group. Withrespect to the physical location 609, the determination service 625 mayobtain location information from a GPS of the communication device 608.The determination service 625 also may determine physical location 609from location information stored by communication device 608 and/orbased on location information accessed by the determination service 625in relation to an identifier of the communication device (e.g., aninternet protocol address, a phone number, an area code or ascreenname). Having determined physical location information related tothe subordinate user 607, the determination service 625 may communicatethat information to the information management service 630.

The information management service 630 is similar generally to theinformation management service 430 of FIG. 4. To manage informationrelated to the subordinate user, the information management service 630may include and/or access a database service 631 and a parental controlservice 633. The database service 631 may include a database, such as,for example, a relational database, for storing or referencinginformation related to online and/or physical locations visited by thesubordinate user 607. In general, the location information includesinformation, such as, for example, an identification of a physicallocation (e.g., a longitude and latitude, an address, a neighborhood ora town or city) and/or an online location (e.g., a URL, a web site, achat room or a news group). The database service 631 also may store orreference notification information or information identifying a physicaland/or online location of the supervisory user to provide notificationsto the supervisory user in response to alert triggers.

The location information may identify a location based on a hierarchicalrelationship. For example, the location information may identify aswithin the same location an online news site and web pageshierarchically associated with that site, or a television channel andprogramming associated with that channel.

In any event, the database service 631 may add or remove locationinformation from the database in view of parental controls and/or systemdefaults. For example, the database service 631 may record onlylocations that have been visited but that have not been pre-approved(e.g., through the parental controls based on a white list). Thedatabase service 631 also may remove from the database (e.g., allow tobe overwritten by the database) information that was stored previouslybut that relates to locations visited outside of a designated interestwindow (e.g., information relating to a location visited 48 hours agowhen the window of interest is the preceding 24 hours).

The parental controls service 633 may enable parental controls similarto those accessed using the “Parental Controls” button 375 of FIG. 3. Ingeneral, the parental controls service 633 may be configured to allow aparent (e.g., the supervisory user 605) to control the monitoring of thelocations visited by a child (e.g., the subordinate user 607). Theparental controls service 633 also may enable a parent to establish orconfigure alert triggers in order to receive notifications based oncompliance or non-compliance with the parental controls. The parentalcontrols service 633 may employ a white list and/or a black list, asdescribed relative to button 375 of FIG. 3, and the parent may beenabled to modify the white list or the black list. For example, theparent may decide to remove from a black list a Tom and Jerry® cartoonweb site placed on the black list because of cartoon violence.

The parental controls service 633 may be configured to permit thesupervisory user 605 to define a window of location information of whichthe supervisory user 605 wishes to be informed. For example, thesupervisory user 605 may specify a time window that is either fixed(e.g., Mar. 13, 2004) or moving (e.g., the last 24 hours) for which thesupervisory user 605 desires location information. The supervisory user605 also may specify a numerical window that indicates a desire forlocation information regarding a specified number of the locations mostrecently visited and/or most frequently visited (e.g., the ten locationsmost recently or frequently visited) by the subordinate user 607.

The parental controls service 633 may screen a location based upon ananalysis of text and/or a label associated with the location. Forexample, the parental controls service 633 may analyze the language ofan online site to determine whether the online site includesinappropriate subject matter. Textual analysis may indicate, forinstance, that visits to an online site should be reported because theonline site relates to gambling (e.g., based on language that includes“gambling,” “sportbook,” “jackpot,” “casino,” “bonus,” “bingo,”“roulette,” “odds,” “house,” and/or “blackjack”). In another example, aphysical location may be identified for reporting as a pool hall basedon an associated label including the term “billiards.” In addition, orin the alternative, the location label may include an expressidentification of the age appropriateness of the location. The parentalcontrols service 633 may enable a child's parent to select or modify theinformation or algorithms used to screen the locations based on thetextual analysis.

The parental controls service 633 additionally may enable the parent toplace a time based restriction on the child's visit to a location. Forexample, a visit to a friend's home may be restricted during school orhomework hours, or visits to online locations may be restricted to nomore than forty-five minutes a day. Other recognized control techniquesalso may be applied by the parental controls service 633.

The database service 631 and the parental controls service 633 may ormay not be incorporated within the same hardware and/or software device,depending, for example, on an anticipated workload of the informationmanagement service 630. Structuring the information management service630 to include a separable database service 631 and parental controlsservice 633 may improve the scalability of the information managementservice 630.

The dynamic user location system 620 also includes an interface service635. The interface service 635 communicates between the supervisory user605 and the information management service 630. The interface services635 may include a print service, a file access service, an IM service,an operating system, an operating system kernel, an authenticationservice, an authorization service, and/or any combination of these orother services.

More specifically, the interface service 635 includes an informingservice 636 and a control service 638 to communicate between thesupervisory user 605 and the information management service 630. Thecontrol service 638 is configured to communicate requests, instructions,and/or configuration information from the supervisory user 605 to theinformation management service 630. For example, the control service 638may be configured as a conduit by which the supervisory user 605 mayaccess and configure parental controls and/or other control informationor parameters maintained, for example, by the parental controls service633 of the information management service 630. The supervisory user 605also may use the control service 638 to query the database service 631for location information related to the subordinate user 607.

The informing service 636 is configured to communicate information fromthe information management service 630 to the supervisory user 605. Forexample, in response to a query provided through the control service638, the informing service 636 may communicate to the supervisory user605 the current parental control configuration and/or system defaultsmaintained by the parental controls service 633. The informing service636 also may communicate to the supervisory user 605 locationinformation of the subordinate user 607 provided by the database service631. The informing service may use the online interface 615 as a conduitto communicate information to the supervisory user 605.

The online interface 615 may correspond generally to the GUIs describedwith respect to FIGS. 1-3. For example, the online interface 615, aloneor in conjunction with the interface service 635, may enable thesupervisory user 605 easily to communicate with the subordinate user 607in relation to the location information or otherwise. The supervisoryuser 605 may be enabled to modify the presentation of the locationinformation related to the subordinate user 607 (e.g., to select amongdifferent views or detail levels of the location information as shown inFIGS. 1-3), to obtain related follow-on information, and/or to select orfilter information based on various criteria (e.g., based on a selectedtime period or a specified parental control).

The online interface 615 may receive location information from thedynamic user location system 620 based on a query of the onlineinterface 615. The online interface 615 also may receive locationinformation from the dynamic user location system 620 automaticallyafter a change in the subordinate user's location and/or at any timethat the logged location information changes. For example, the onlineinterface 615 may receive updated location information at short periodicintervals, such as, for example, every 30 or 60 seconds. In any event,the online interface 615, alone or in conjunction with the dynamic userlocation system 620, may perform sorting, prioritizing, or other typesof organizational processing on the location information presented tothe supervisory user 605 so that the location information is provided ina desired fashion. Typically, the online interface 615 and/or thedynamic user location system 620 will include a software program or apiece of code to cause the operation described above.

The online interface 615 may receive and present information to thesupervisory user 605 using a standard protocol, such as, for example,the standard generalized markup language (SGML), the extensible markuplanguage (XML), the hypertext markup language (HTML), the extensiblehypertext markup language (XHTML), the compact hypertext markup language(cHTML), the virtual reality markup language (VRML), the wireless markuplanguage (WML), the voice extensible markup language (VXML), the shortmessage service (SMS), a document object model (DOM), the simple objectaccess protocol (SOAP), or the dynamic hypertext markup language(DHTML). The online interface 615 may present the information to thesupervisory user 605 in a manner that enables the supervisory user 605to respond to, or to interact with, the presented information.

The dynamic user location system 620 may optionally be incorporatedwithin the same hardware or software device, depending, for example, onan anticipated workload. The dynamic user location system 620 also maybe implemented in a logically or physically distributed fashion toimprove maintainability, cost, and/or scalability.

Each of the communication device 608, the online interface 615, thenetwork 612, and the dynamic user location system 620 may includefurther mechanisms for communicating data, such as, for example, theshort message service (SMS), the wireless application protocol (WAP),the transport connection protocol (TCP), the internet protocol (IP), theWorld Wide Web, one or more LANs, and/or one or more WANs. Thecommunication device 608, the online interface 615, the network 612, andthe dynamic user location system 620 also may include analog or digitalwired and wireless communications networks, such as, for example, publicswitched telephone networks (PSTN), integrated services digital networks(ISDN), various types of digital subscriber lines (xDSL), advance mobiletelephone service (AMPS), global system for mobile communications (GSM),general packet radio service (GPRS), code division multiple access(CDMA), radio, cable, satellite, and/or other delivery mechanisms forcarrying data.

One or more other services may be included in the components of system600 and/or these components (hereinafter the system services) may beincluded as part of one or more other services. For example, the systemservices may include or be included in a general-purpose or aspecial-purpose computer (e.g., a personal computer, a PDA, or a devicespecifically programmed to perform certain tasks), a local area network,and/or a wide area network. In either case, the response to andexecution of instructions received by any or all of the system servicesmay be controlled by, for example, a program, a piece of code, aninstruction, a device, a computer system, or a combination thereof, forindependently or collectively instructing the services to interact andoperate as described herein.

FIGS. 7A-7C illustrate a method implementable by the dynamic userlocation system of FIG. 6. The method includes a logging procedure 700(FIG. 7A) used to monitor the visitation activity of the subordinateuser, a maintenance procedure 730 (FIG. 7B) used to maintain storedlocation information, and an interface procedure 750 (FIG. 7C) used tocommunicate with the supervisory user. The logging, maintenance, andinterface procedures may be performed asynchronously and/or concurrentlyto each other.

Referring to the logging procedure 700 of FIG. 7A, visitation activityof the subordinate user 607 is monitored for entrance or exit events(step 702). Monitoring continues as long as neither an entrance eventnor an exit event is detected (steps 704 and 706).

If an entrance event (e.g., entry into a physical location, opening ofan online location, focusing on an online location) is detected (step704), then a user identification and location information related to thevisited location is communicated (step 708). If the parental controlsand/or system defaults do not indicate that logging is required (step710), then monitoring of the subordinate user's visitation activityresumes (step 702). Otherwise, if logging is required (step 710), thenthe location information is stored in a database record associated withthe subordinate user to indicate that the subordinate user has visitedthe location (step 712). An indication also is stored that the locationis the present location of the subordinate user (step 714). Thereafter,monitoring resumes (step 702).

In the event that an exit event is detected (step 706), the useridentification and location information related to the location exitedis communicated (step 716). If the subordinate's user's visit to thelocation was logged (step 718) then the indication that the subordinateuser presently is at that location is cleared (step 720). Thereafter, orif the visit to the exited location was not logged (step 718),monitoring of the subordinate user's visitation activity resumes (step702). Multiple steps may be performed concurrently.

Referring to FIG. 7B, the maintenance procedure 730 is performed upon apredetermined or automatically determined maintenance interval (step732). In accordance with the maintenance interval, verification is madethat stored location information still qualifies for storage based onthe system defaults and/or parental controls (step 734). Verificationmay include, for example, ensuring that the stored location informationcontinues to satisfy a moving window of interest indicated by theparental controls (e.g., that the location information relates to avisit made within 48 hours of the present time). In any event, storedinformation that fails presently to satisfy the system defaults and/orparental controls may be removed or purged (step 736). Multiple stepsmay be performed concurrently.

Referring to the interface procedure 750 of FIG. 7C, a communication ofthe supervisory user is received (step 752). If the communication is arequest for location information (step 754), then stored locationinformation associated with the subordinate user is accessed (step 756).The subordinate user's present location and/or other locations visitedby the subordinate user are presented to the supervisory user based onthe logged location information (step 758). In addition, the supervisoryuser may be enabled to act based on the presented location information(step 760). For example, the supervisory user may be enabled tocommunicate (e.g., via email, instant message, or mobile device) withthe subordinate user based on or in relation to a location visited bythe subordinate user. In the case of an online location, the supervisoryuser may be enabled further to join the subordinate user at a presentonline location or to access past locations visited by the subordinateuser.

On the other hand, if the communication is for access to the parentalcontrols (step 762), then the supervisory user may be enabled to view,add to, or otherwise modify the parental controls as desired (step 764).For example, the supervisory user may be enabled to modify or replaceeither a white list or a black list, to add or modify a time component,and/or to otherwise control or specify logging criteria to controlstorage or access to location information related to the subordinateuser.

For messages of other types (i.e., not relating to a location request orto parental controls), other message handling routines may be employedas appropriate (step 766). In any event, irrespective of the messagetype received and handled, monitoring continues for other communicationsof the supervisory user (step 752). Multiple steps may be performedconcurrently.

Other implementations are within the scope of the following claims.

What is claimed is:
 1. A method comprising: providing a display of agroup of co-users of a communications system, the co-users beingassociated with a user of the communications system; detecting, by atleast one processor, a user selection of a co-user from the group ofco-users; and in response to detecting the user selection of theco-user, providing a display of recent online locations and associatedgeographic locations of a mobile device of the selected co-user used toaccess the recent online locations.
 2. The method as recited in claim 1,wherein the recent geographic locations of the mobile device of theselected co-user comprise at least one global positioning system (GPS)location.
 3. The method as recited in claim 2, wherein the at least oneGPS location comprises a GPS location of the mobile device associatedwith the selected co-user.
 4. The method as recited in claim 1, whereinthe recent online locations of the selected co-user comprises an onlinelocation for each of the associated geographic locations.
 5. The methodas recited in claim 1, wherein the recent online locations comprise auniform resource locator (URL) of a web site that the selected co-userhas visited.
 6. The method as recited in claim 1, wherein the recentonline locations comprise an activity the selected co-user has performedutilizing the Internet.
 7. The method as recited in claim 6, wherein theactivity the selected co-user has performed utilizing the Internet isviewing a television program.
 8. The method as recited in claim 1,wherein the recent online locations and associated geographic locationsof the selected co-user comprise an online location and a name orphysical address of an associated physical location of the mobile devicethat the selected co-user used to access the online location.
 9. Themethod as recited in claim 8, wherein the geographic locations furthercomprise a global positioning system (GPS) location of the mobile deviceused to access at least one of the recent online locations.
 10. Themethod as recited in claim 1, wherein providing the display of the groupof co-users of the communications system comprises providing a firstuser interface for display on a client device that includes the displayof the group of co-users of the communications system.
 11. The method asrecited in claim 10, wherein providing the display of the recent onlinelocations and associated geographic locations of the mobile device ofthe selected co-user used to access the recent online locationscomprises providing a second user interface for display on the clientdevice.
 12. The method as recited in claim 11, wherein the second userinterface comprises a list including a current geographic location andassociated online location of the mobile device of the selected co-userand one or more past geographic locations and associated onlinelocations of the mobile device of the selected co-user.
 13. The methodas recited in claim 11, wherein the second user interface comprises agraph indicating the recent online locations and associated geographiclocations of the mobile device of the selected co-user.
 14. The methodas recited in claim 1, wherein detecting the user selection of theco-user from the group of co-users comprises detecting a cursor floatingover a name of the co-user.
 15. A graphical user interface produced on acomputing device having a display device associated therewith, thegraphical user interface comprising: a group of screen names, the screennames identifying co-users associated with a user of a communicationssystem; a first indication displayed in connection with a first screenname of a co-user for which location information is available; andwherein, upon selection of the first screen name, an informationinterface area is displayed on the display device of the computingdevice, the information interface area indicating recent onlinelocations and associated geographic locations of a mobile device of theco-user used to access the recent online locations.
 16. The graphicaluser interface as recited in claim 15, wherein the first indicationcomprises an icon.
 17. The graphical user interface as recited in claim15, wherein the recent geographic locations of the mobile device of theco-user used to access the recent online locations comprise a globalpositioning system (GPS) location.
 18. The graphical user interface asrecited in claim 17, wherein the GPS location comprises a GPS locationof the mobile device associated with the co-user used to access at leastone of the recent online locations.
 19. The graphical user interface asrecited in claim 15, wherein the recent online locations of the co-usercomprise an online location for each of the recent geographic locations.20. The graphical user interface as recited in claim 15, wherein therecent online locations comprise a uniform resource locator (URL) of aweb site that the co-user has visited.
 21. The graphical user interfaceas recited in claim 15, wherein the recent online locations comprise anactivity the co-user has performed utilizing the Internet.
 22. Thegraphical user interface as recited in claim 21, wherein the informationinterface area comprises a selectable option for joining the co-user inthe activity.
 23. The graphical user interface as recited in claim 21,wherein the activity the co-user has performed utilizing the Internet isviewing a television program.
 24. The graphical user interface asrecited in claim 21, wherein the activity the co-user has performedutilizing the Internet is viewing a web site.
 25. The graphical userinterface as recited in claim 15, wherein the recent online locationsand associated geographic locations of the co-user comprise at least oneonline location and a name or physical address of an associated physicallocation at which the co-user accessed the at least one online location.26. The graphical user interface as recited in claim 15, wherein theinformation interface area comprises a pop-up window.
 27. The graphicaluser interface as recited in claim 15, wherein the information interfacearea comprises a portion of the graphical user interface.
 28. Anon-transitory computer-readable storage medium including a set ofinstructions that, when executed, by a computing device having a displaydevice, cause the computing device to: provide a display, on the displaydevice, of a first interface comprising a group of screen names, thescreen names identifying co-users associated with a user of acommunications system; provide a display, in the first interface, of afirst indication in connection with a first screen name of a co-user forwhich location information is available; and provide a display, on thedisplay device, of an information interface area upon selection of thefirst screen name, the information interface area indicating recentonline locations and associated geographic locations of a mobile deviceof the co-user used to access the recent online locations.
 29. Thenon-transitory computer-readable storage medium as recited in claim 28,wherein the recent geographic locations of the mobile device comprise aglobal positioning system (GPS) location of the mobile device used toaccess the recent online locations.
 30. The non-transitorycomputer-readable storage medium as recited in claim 28, wherein therecent online locations and associated geographic locations comprise acurrent online location and current geographic location of the mobiledevice of the co-user used to access the current online location and oneor more previous online locations and associated geographic locations ofthe mobile device of the co-user used to access the one or more previousonline locations.
 31. The non-transitory computer-readable storagemedium as recited in claim 28, wherein the recent online locations ofthe co-user comprise an online location for each of the recentgeographic locations.
 32. The non-transitory computer-readable storagemedium as recited in claim 28, wherein the recent online locationscomprise a uniform resource locator (URL) of a web site that the co-userhas visited.
 33. The non-transitory computer-readable storage medium asrecited in claim 28, wherein the recent online locations comprise anactivity the co-user has performed utilizing the Internet.
 34. Thenon-transitory computer-readable storage medium as recited in claim 33,wherein the information interface area comprises a selectable option forjoining the co-user in the activity.
 35. The non-transitorycomputer-readable storage medium as recited in claim 28, wherein therecent online locations of the co-user comprise an online location and aname or physical address of an associated physical location of themobile device that the co-user used to access the online location. 36.The non-transitory computer-readable storage medium as recited in claim25, wherein the geographic location further comprises a globalpositioning system (GPS) location of the mobile device which the co-userutilized to access the online location.
 37. The non-transitorycomputer-readable storage medium as recited in claim 28, whereininformation interface area comprises a pop-up window.
 38. Thenon-transitory computer-readable storage medium as recited in claim 28,wherein information interface area comprises a portion of the firstinterface.